package com.aaa.listener;

import org.apache.log4j.PropertyConfigurator;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import java.util.HashSet;
import java.util.Set;

/**
 * @author ：Teacher陈（86521760@qq.com）
 * @date ：Created in 2022/8/8 9:25
 * @description：这辈子第一个监听器
 * @modified By：
 * @version: 1.0
 */
@WebListener
public class Log4JListener implements ServletContextListener {
    /**
     * @create by: Teacher陈（86521760@qq.com）
     * @description: servlet容器初始化的时候触发此方法
     * @create time: 2022/8/8 9:35
     * @param sce
     * @return void
     */
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        //此处适合加载log4J的配置文件
        ServletContext servletContext = sce.getServletContext();
        //获取web项目的绝对路径
        String realPath = servletContext.getRealPath("/");
        //log4J.properties 配置文件在web项目中的路径  ，log4J.properties的绝对路径
        String log4JPath=realPath+"/WEB-INF/classes/log4J.properties";
        //加载log4J.properties配置文件
        PropertyConfigurator.configure(log4JPath);
        //加载spring的容器
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        servletContext.setAttribute("ac",ac);
    }

}
